package com.atguigu.common.valid;/**
 * @创建人 qiemengyan
 * @创建时间 2022/12/23
 * @描述
 */

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;

/**
 * 功能描述：
 * @ClassName: ListValueConstraintValidator
 * @Author：TanYinbiao
 * @Date：2022/12/23 16:31
 */
//第一个泛型是校验注解，第二个泛型是校验数据类型
public class ListValueConstraintValidator implements ConstraintValidator<ListValue,Integer> {

    private Set<Integer> set = new HashSet<>();


    // 初始化方法,ListValue是自定义的注解.
    @Override
    public void initialize(ListValue constraintAnnotation) {
        int[] vals = constraintAnnotation.vals();
        for (int val : vals) {
            set.add(val);
        }
    }

    /**
     * 判断是否校验成功*
     * @param value 需要校验的值
     * @param constraintValidatorContext
     * @return
     */
    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext constraintValidatorContext) {
        return  set.contains(value);
    }
}
